#! /bin/bash
export FFMPEG_HOME=/usr/local/ffmpeg/bin
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH:$FFMPEG_HOME

JAR_NAME=ffmpeg-service-1.0.jar
echo "" 
echo ".............................Restarting.............................."
echo $(date -d '+8 hours' '+%Y-%m-%d %H:%M:%S %A')
echo $(date '+%Y-%m-%d %H:%M:%S')

pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`

# -z 表示如果$pid为空时执行。 注意：每个命令和变量之间一定要前后加空格，否则会提示command找不到
if [ ! -z $pid ]; then
	kill -9 $pid
fi

cd /home/edge/mamy/

if [ ! -d "log" ]; then
  mkdir log
fi

count=$(ls log/  -1 | grep $(date +%Y%m%d) | wc -l)

nohup java -jar  ffmpeg-service-1.0.jar  --server.port=8088  > log/ffmpeg_service_$(date +%Y%m%d)_$((count + 1)).log  2>&1 &

pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`

echo "....................Restart successfully！..........................."
echo $pid

# 可以使用 Linux 中的 crontab 命令来实现定时执行脚本的功能。具体步骤如下：
# 执行命令 crontab -e，编辑当前用户的计划任务。
# 在打开的文件中添加一行类似于以下的内容：
# 0 22 * * 3 /home/edge/mamy/restart.sh > /home/edge/mamy/restart.log
# 上述命令表示在每天的凌晨 5 点执行 /home/edge/mamy/restart.sh 脚本。
# 具体语法为：分 时 日 月 星期 命令。其中，星号（*）表示匹配所有可能的值，比如上面的示例中星期这一栏就是用星号来匹配所有星期的。而数字则表示精确匹配，比如上面的示例中“0 5”表示在每天的第 5 小时第 0 分钟执行命令，也就是早上 5 点。
# 保存文件并退出。
# 这样就完成了设置，系统会在每天的 5 点自动执行指定的脚本。